package cn.stu.framework.service.impl;


import cn.stu.common.core.Constants;
import cn.stu.common.utils.R;
import cn.stu.framework.entity.SysExpression;
import cn.stu.framework.mapper.SysExpressionMapper;
import cn.stu.framework.service.ISysExpressionService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 流程达式Service业务层处理
 *
 * @author ruoyi
 * @date 2022-12-12
 */
@Service
@AllArgsConstructor
public class SysExpressionServiceImpl implements ISysExpressionService {
    private SysExpressionMapper sysExpressionMapper;

    /**
     * 查询流程达式
     *
     * @param id 流程达式主键
     * @return 流程达式
     */
    @Override
    public R selectSysExpressionById(Long id) {
        SysExpression sysExpression = sysExpressionMapper.selectSysExpressionById(id);
        return R.ok(sysExpression);
    }

    /**
     * 查询流程达式列表
     *
     * @param sysExpression 流程达式
     * @return 流程达式
     */
    @Override
    public R selectSysExpressionList(SysExpression sysExpression) {
        List<SysExpression> sysExpressions = sysExpressionMapper.selectSysExpressionList(sysExpression);
        return R.ok(sysExpressions);
    }

    /**
     * 新增流程达式
     *
     * @param sysExpression 流程达式
     * @return 结果
     */
    @Override
    public R<Integer> insertSysExpression(SysExpression sysExpression) {

        return R.ok(sysExpressionMapper.insert(sysExpression), Constants.OPERATION_SUCCESS);
    }

    /**
     * 修改流程达式
     *
     * @param sysExpression 流程达式
     * @return 结果
     */
    @Override
    public R<Integer> updateSysExpression(SysExpression sysExpression) {

        return R.ok(sysExpressionMapper.updateById(sysExpression), Constants.OPERATION_SUCCESS);
    }

    /**
     * 批量删除流程达式
     *
     * @param ids 需要删除的流程达式主键
     * @return 结果
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R<Integer> deleteSysExpressionByIds(Long[] ids) {
        return R.ok(sysExpressionMapper.deleteSysExpressionByIds(ids), "批量删除成功");
    }

    /**
     * 删除流程达式信息
     *
     * @param id 流程达式主键
     * @return 结果
     */
    @Override
    public R<Integer> deleteSysExpressionById(Long id) {
        return R.ok(sysExpressionMapper.deleteSysExpressionById(id), "删除成功");
    }
}
